home *** CD-ROM | disk | FTP | other *** search
/ Ahoy 1984 July to December / Ahoy_Magazine_84-Jul-Dec_1984_Double_L_unofficial.d64 / space patrol (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  9KB  |  219 lines

  1. 2 si=54272:for a=si to si+24:poke a,0:next a
  2. 3 print "[147]":poke 53280,0:poke 53281,0:hs=0:x4=0:y4=0
  3. 4 v=53248:x=60:y=76:x1=240:y1=30:i=0:b=0:f=56095:co=0:x2=60:y2=210:x3=30:y3=210
  4. 5 gosub 4000:gosub 4999
  5. 7 rem ========================
  6. 8 rem ****  title screen  ****
  7. 9 rem ========================
  8. 10 print "[147]":poke 53280,0:poke 53281,0
  9. 20 for a=1 to 100:x=int(rnd(1)*640)+1:c=int(rnd(1)*6)+2
  10. 30 poke 55456+x,c:poke 1184+x,46:next a
  11. 40 print "[156][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]"
  12. 50 print "[145]                  [154] "
  13. 60 print "       (c) double[146]   [146] software"
  14. 70 print "                     "
  15. 80 print "[156][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
  16. 90 printtab(4)"[158]   [223]   [223]   [223]   [223]   [223]"
  17. 100 printtab(4)"[158]    [158]    [158]    [158]    [158]    [146]          [209]"
  18. 110 printtab(4)"[158]  [158] [223]  [158]  [158]  [158]  [158]  [146]  [158]  [158][223]"
  19. 120 printtab(4)"[158][223]   [158]    [158]    [158]  [146]  [158]   "
  20. 130 printtab(4)"[158]    [158]  [146]  [158]  [158]  [158]  [158] [223]  [158] [223][146]      [209]"
  21. 140 printtab(4)"[158][223]   [158][146][223] [158][146]  [223] [158][146][223] [146][158][223]   [146][158][223]   ":print
  22. 150 print tab(12)"[158]   [223]   [223]   [223]   [223]   [223] [223]"
  23. 160 print tab(7)"[209]    [158]    [158]    [158][146][223]   [158]    [158]    [158]  "
  24. 170 print tab(12)"[158]  [158]  [158]  [158]  [146] [158]  [146] [158]  [158]  [158]  [158]  [158]  "
  25. 180 print tab(12)"[158]    [158]    [146] [158]  [146] [158]   [146][169][158]  [158]  [158]  "
  26. 190 print tab(4)"[150][209]       [158]  [146]  [158]  [158]  [146] [158]  [146] [158]  [158] [223][158]  [158]  [158]  [158] [223]"
  27. 200 print tab(12)"[158][223] [146]  [158][223] [146][158][223] [146][158] [223] [146][158] [223] [146][158][223] [146][158][223]   [146][158][223]   "
  28. 210 print:print tab(8)"designed by....[149]bob lloret":print
  29. 220 print tab(12)"[158]press [150]f1 [158]to start"
  30. 230 poke 49522,1:poke 49523,5:poke 49524,34:poke 49525,20:poke 49526,24
  31. 235 poke 53265,peek(53265)or16
  32. 240 poke 49527,1:sys 49152:for d=1 to 90:next d
  33. 270 get a$:if a$<>"[133]" then 240
  34. 320 poke 53265,peek(53265)and239
  35. 324 rem =====================
  36. 325 rem ****  playfield  ****
  37. 326 rem =====================
  38. 330 print "[147]":poke 53280,0:poke 53281,0
  39. 340 l$=""
  40. 350 for a=1 to 75:x=int(rnd(1)*720)+1:c=int(rnd(1)*6)+2
  41. 360 poke 55296+x,c:poke 1024+x,46:next a
  42. 365 print left$(l$,19)"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
  43. 370 print left$(l$,22)"         [146]           [159] score "
  44. 371 poke v+21,53:sr=51:goto 375
  45. 372 poke v+21,37:sr=35:goto 375
  46. 373 poke v+21,5:sr=3
  47. 375 gosub 620
  48. 380 poke 49522,1:poke 49523,0:poke 49524,39:poke 49525,0:poke 49526,18
  49. 385 poke 53265,peek(53265)or16
  50. 390 y1=30:poke v+5,y1:poke 49527,1:gosub 540
  51. 394 rem =====================
  52. 395 rem ****  main loop  ****
  53. 396 rem =====================
  54. 400 sys 49152
  55. 401 a=int(rnd(0)*3)+601:on a-601 gosub 601,600
  56. 405 poke 2042,195:b=b+1:if b=4 then gosub 610
  57. 410 jv=peek(56320):fr=jvand16:jv=15-(jvand15)
  58. 420 if jv=2 then y=y+2:if y>=180 then y=180:gosub 620
  59. 430 if fr<>16thenx4=95:y4=y-2:pokev+12,x4:pokev+13,y4:pokev+21,sr+66:goto 900
  60. 440 if jv=1 then y=y-2:if y<=48 then y=48
  61. 445 if y1<=50 then y1=50
  62. 446 if y1>=174 then y1=174
  63. 450 poke v+1,y:poke v+5,y1:poke 2042,194
  64. 460 goto 400
  65. 485 rem ==========================
  66. 490 rem **** saucer explosion ****
  67. 495 rem ==========================
  68. 500 sys 49152:pokev+2,x1:pokev+3,y1:poke2042,193:ford=1to50:next
  69. 501 sys 49152:poke si,0:pokesi+1,0:pokesi+4,16
  70. 504 for a=15 to 10 step -.5
  71. 505 pokesi+24,a:pokesi+4,129:pokesi+1,3:poke si,5:pokesi+5,11
  72. 506 next a:sys 49152:hs=hs+100
  73. 510 for d=1 to 5:next:sys 49152:poke v+21,sr-2
  74. 515 print left$(l$,22)tab(28);"[159]";hs:sys 49152
  75. 520 poke si,0:pokesi+1,0:pokesi+4,16:goto 380
  76. 525 rem ======================
  77. 530 rem ****  new saucer  ****
  78. 535 rem ======================
  79. 540 poke si+24,2:poke si+5,64:pokesi+6,130:poke si+1,17:pokesi+4,129:pokesi,37
  80. 550 sys 49152:c=int(rnd(0)*3)+3:pokev+38,c:poke v+41,1:poke v+37,2
  81. 555 pokev+21,sr+2:poke 2042,195
  82. 560 sys 49152:y1=y1+3:if y1>=100+(c*2) then y1=100+(c*2):return
  83. 570 poke 2042,194
  84. 580 poke v+5,y1:goto 555
  85. 600 sys 49152:y1=y1+7:return
  86. 601 sys 49152:y1=y1-7:return
  87. 607 rem ========================
  88. 608 rem ****  fuel monitor  ****
  89. 609 rem ========================
  90. 610 sys 49152:f=f-1:pokef,0:b=0:iff=56070thenforz=56063tof-1:pokez,2:next
  91. 612 if f=56063 then h=y:goto 650
  92. 615 return
  93. 620 print left$(l$,20)" [158] fuel [156]                                "
  94. 630 f=56095:b=0:return
  95. 639 rem ==========================
  96. 640 rem ** space ship explosion **
  97. 641 rem ==========================
  98. 650 poke 2040,193:pokev+21,sr-2:ford=1 to 100:next:poke v+29,1:pokev+23,1
  99. 660 sys 49152:poke si,0:pokesi+1,0:pokesi+4,16:co=co+1
  100. 670 for a=15 to 8 step -.5
  101. 680 pokesi+24,a:pokesi+4,129:pokesi+1,3:poke si,5:pokesi+5,11
  102. 690 next a:sys 49152
  103. 700 for d=1 to 45:next:sys 49152:pokev+29,0:pokev+23,0
  104. 710 poke si,0:pokesi+1,0:pokesi+4,16:pokev+21,sr-3
  105. 711 if co=1 then 720
  106. 712 if co=2 then 800
  107. 713 if co=3 then 1000
  108. 717 rem ==========================
  109. 718 rem ****  2nd space ship  ****
  110. 719 rem ==========================
  111. 720 for d=1 to 1000:nextd
  112. 730 y2=y2-1
  113. 740 pokev+9,y2:if y2<=76 then y2=76:y=y2:goto760
  114. 750 goto 730
  115. 760 poke 2040,192:poke v+39,5:pokev+21,33:poke v+1,y
  116. 770 y1=30:poke v+5,y1:goto 372
  117. 797 rem ==========================
  118. 798 rem ****  3rd space ship  ****
  119. 799 rem ==========================
  120. 800 for d=1 to 1000:next d
  121. 810 x3=x3+1
  122. 820 poke v+10,x3:if x3=60  then for d=1 to 500:next d:goto 840
  123. 830 goto 810
  124. 840 y3=y3-1
  125. 850 poke v+11,y3:if y3=76 then y=y3:goto 870
  126. 860 goto 840
  127. 870 poke 2040,192:poke v+39,6:poke v+21,1:poke v+1,y
  128. 880 y1=30:poke v+5,y1:goto 373
  129. 900 sys 49152:for a=1 to 25:x4=x4+5:pokev+12,x4:next a:sys 49152:pokev+21,sr+2
  130. 910 if peek(v+30)and64=64 then 500
  131. 920 goto 440
  132. 1000 poke v+21,0:print"[147]":poke 53280,0:poke 53281,7
  133. 1010 for a=1 to 8
  134. 1020 print left$(l$,3)tab(12)"                    "
  135. 1025 for d=1 to 150:next d
  136. 1030 print left$(l$,3)tab(12)"[156]computer report"
  137. 1035 for d=1 to 150:next d:next a
  138. 1040 if hs<=5000 then 1060
  139. 1045 print left$(l$,7)tab(8)"[144]s c o r e  ";hs
  140. 1050 msg$="     congratulations.....your mission        was a success !!"
  141. 1055 goto 1200
  142. 1060 msg$="     microz has defeated you again !!"
  143. 1070 print left$(l$,7)tab(8)"[144]s c o r e  ";hs
  144. 1200 for a=1 to len(msg$)
  145. 1210 print "[156]";left$(l$,10)left$(msg$,a)
  146. 1220 for d=1 to 150:next d:next a
  147. 1230 end
  148. 3980 rem =======================
  149. 3990 rem ****  sprite data  ****
  150. 3995 rem =======================
  151. 4000 for s1=12288 to 12350:read d1:pokes1,d1:next s1
  152. 4005 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  153. 4010 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
  154. 4015 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  155. 4020 poke v+39,2:poke 2040,192:poke v,x:poke v+1,y
  156. 4025 for s2=12352 to 12414:read d2:poke s2,d2:next
  157. 4030 data 128,0,0,64,0,24,104,0,57,52,48,114,26,56,100,14,184,200,2
  158. 4035 data 185,0,0,178,0,252,176,58,240,32,252,1,1,255,126,0,0,16,132
  159. 4040 data 15,35,4,64,70,6,32,140,34,56,24,182,92,51,182,110,101,172
  160. 4045 data 82,73,176,0,0,128,0
  161. 4050 poke 2041,193:poke v+40,2
  162. 4060 for s3=12416 to 12478:read ch:poke s3,ch:next
  163. 4070 data 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,3,255,192,15,255,240,63,255,252
  164. 4080 data 255,255,255,85,85,85,187,187,187,85,85,85,255,255,255
  165. 4090 data 63,255,252,15,255,240,3,255,192,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0
  166. 4100 poke 2042,194:pokev+28,4
  167. 4110 poke v+4,x1:poke v+5,y1
  168. 4120 for s4=12480 to 12542:read d4:poke s4,d4:next
  169. 4130 data 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,3,255,192,15,255,240,63,255,252
  170. 4140 data 255,255,255,85,85,85,238,238,238,85,85,85,255,255,255
  171. 4150 data 63,255,252,15,255,240,3,255,192,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0
  172. 4160 poke 2043,195:poke v+41,1:pokev+28,4:poke v+37,5:pokev+38,4
  173. 4170 for s5=12544 to 12606:read d5:pokes5,d5:next s5
  174. 4180 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  175. 4190 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
  176. 4200 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  177. 4210 poke2044,196:pokev+43,5:pokev+8,x2:pokev+9,y2
  178. 4220 for s6=12608 to 12670:read d6:pokes6,d6:next s6
  179. 4230 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  180. 4240 data 240,56,0,124,68,0,63,255,224,63,255,252,63,255,255
  181. 4250 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  182. 4260 poke2045,197:pokev+44,6:pokev+10,x3:pokev+11,y3
  183. 4270 for s7=12672 to 12734:read d7:poke s7,d7:next s7
  184. 4280 data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  185. 4290 data 0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  186. 4300 data 0,0,0,0,0,0
  187. 4310 poke 2046,198:pokev+45,2
  188. 4320 return
  189. 4985 rem ==========================
  190. 4990 rem ** ml screen subroutine **
  191. 4995 rem ==========================
  192. 4999 for i=1 to 4:read a:next:read lo,hi:fori=lo to hi:readx:poke i,x:next
  193. 5000 data 11507,12573,12522,11001
  194. 5005 data 49152, 49528
  195. 5006 return
  196. 5010 data 174,114,193,224,3,144,3,76,117,192,188,114,193,140,121,193,174
  197. 5020 data 118,193,232,202,32,30,193,172,121,193,173,119,193,201,2,208,10
  198. 5030 data 169,32,72,173,33,208,72,76,50,192,177,90,72,177,92,72,204
  199. 5040 data 116,193,240,20,200,177,90,72,177,92,136,145,92,104,145,90,200
  200. 5050 data 204,116,193,208,238,240,18,136,177,90,72,177,92,200,145,92,104
  201. 5060 data 145,90,136,204,115,193,208,238,173,119,193,201,0,208,5,104,104
  202. 5070 data 76,111,192,104,145,92,104,145,90,236,117,193,208,160,96,172,116
  203. 5080 data 193,200,189,114,193,170,32,30,193,173,120,193,201,2,208,19,136
  204. 5090 data 169,32,153,122,193,173,33,208,153,162,193,204,115,193,208,239,240
  205. 5100 data 16,136,177,90,153,122,193,177,92,153,162,193,204,115,193,208,240
  206. 5110 data 236,117,193,240,37,202,32,30,193,172,116,193,200,136,177,90,72
  207. 5120 data 177,92,32,48,193,145,92,104,145,90,32,56,193,204,115,193,208
  208. 5130 data 234,236,117,193,208,221,240,46,202,206,118,193,232,32,30,193,172
  209. 5140 data 116,193,200,136,32,48,193,177,90,72,177,92,32,56,193,145,92
  210. 5150 data 104,145,90,204,115,193,208,234,236,118,193,208,221,238,118,193,232
  211. 5160 data 32,30,193,173,120,193,201,0,240,20,172,115,193,136,200,185,162
  212. 5170 data 193,145,92,185,122,193,145,90,204,116,193,208,240,96,189,89,193
  213. 5180 data 133,91,24,105,212,133,93,189,64,193,133,90,133,92,96,72,152
  214. 5190 data 24,105,40,168,104,96,72,152,56,233,40,168,104,96,0,40,80
  215. 5200 data 120,160,200,240,24,64,104,144,184,224,8,48,88,128,168,208,248
  216. 5210 data 32,72,112,152,192,4,4,4,4,4,4,4,5,5,5,5,5
  217. 5220 data 5,6,6,6,6,6,6,6,7,7,7,7,7,3,0,4,0
  218. 5230 data 4,1,1
  219.